import time
from DrissionPage import ChromiumOptions, ChromiumPage
import ddddocr  # 导入验证码识别库

co = ChromiumOptions()
dp = ChromiumPage(addr_or_opts=co)
dp.get('https://spxksq.amr.guizhou.gov.cn:9081/TopFDOAS/searchDoc.action', retry=3, interval=2, timeout=10)
print(dp.address)
print(dp.user_agent)

for i in range(3):  # 识别失败时重试3次
    # 定位输入企业名称或许可证编号的输入框
    dp.ele('#nameLicNo').input('多彩贵州文化艺术股份有限公司')  # 输入企业名称或许可证编号
    # 定位验证码图片框位置
    img_bytes = dp.ele('#captchaImg').src()  # 获取验证码图片的字节码
    # 识别验证码
    ocr = ddddocr.DdddOcr(show_ad=False, beta=True)  # 初始化验证码识别库
    captcha_code = ocr.classification(img_bytes)  # 识别验证码
    print(captcha_code)  # 打印识别结果
    # 定位验证码输入框位置
    dp.ele('#yzm').input(captcha_code)  # 输入验证码
    # 点击提交按钮
    dp.ele('#cxBut').click()  # 点击提交按钮

    # 等待页面加载完成
    dp.wait(2)
    if dp.ele('.xcenter', timeout=2) and dp.ele('.x-table', timeout=2):
        print('查询名称:', dp.ele('c:.x-table a').text)
        print('查询结果:', dp.ele('x://div[@class="xcenter"]').html)
        break  # 退出循环
    else:
        if dp.ele('#newvbutton', timeout=2):
            dp.ele('#newvbutton').click()  # 关闭弹窗
        print('验证码输入错误，正在重试...')


# dp.quit()  # 关闭浏览器